package me.zhengjie.modules.service;

import me.zhengjie.modules.domain.enterprise.EnterpriseInformation;
import me.zhengjie.modules.domain.enterprise.EnterpriseInvestment;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface EnterpriseInfService {

    /**
     * 解析map
     * 添加企业基本信息和员工信息
     * @param map
     */
    void addEnterpriseInformationByJson(Map<String, Object> map);

    /**
     * 根据条件分页查询企业基本信息
     * @param map
     * @return
     */
    List<EnterpriseInformation> queryAllByPageForConditions(Map<String,Object> map);

    /**
     * 查询新一轮满足条件的企业基本信息
     * @return
     */
    List<EnterpriseInformation> queryNewRound();

    /**
     * 查询最新的企业基本信息
     * @return
     */
    List<EnterpriseInformation> queryNewEnterpriseInf();

    /**
     * 查询所有企业基本信息
     * @return
     */
    List<EnterpriseInformation> queryAll();

    /**
     * 分页查询企业基本信息
     * @param map
     * @return
     */
    List<EnterpriseInformation> queryEnterpriseInfByPage(Map<String,Object> map);

    /**
     * 统计企业基本信息条数
     * @return
     */
    int queryEnterpriseInfByCount();

    /**
     *  根据企业名称查询企业
     * @param name
     * @return
     */
    EnterpriseInformation queryEnterpriseByName(String name);

    /**
     * 根据企业id查询企业
     * @param id
     * @return
     */
    EnterpriseInformation queryEnterpriseById(Integer id);

    /**
     * 根据条件分页查询企业基本信息
     * @param map
     * @return
     */
    List<EnterpriseInformation> queryEnterpriseInfoForPageByConditions(Map<String, Object> map);

    /**
     * 条数
     * @param map
     * @return
     */
    int queryEnterpriseInfoForPageByConditionsToTotal(Map<String, Object> map);

    /**
     * 根据企业名称查询  专利信息总数，投资信息总数
     * @param name
     * @return
     */
    Map<String, Object> queryNumberInformation(String name);

    /**
     * 查询所有企业的地区（不重复）
     * @return
     */
    List<String> queryEnterpriseInfForDistrict();

    /**
     * 查询企业行业top10
     * @return
     */
    List<Map<String,Object>> queryEnterpriseInfIndustryTopTen();

    /**
     * 根据企业id 进行数据分析 企业里程碑
     * @param id
     * @return
     */
    List<Map<String, Object>> queryEnterpriseInfMilestone(Long id,Date time);

    /**
     * 企业价值评估
     * @param id
     * @return
     */
    Map<String,Object> queryEnterpriseInfEvaluation(Long id);

    /**
     * 查找同行总数，并得到排名
     * @return
     */
    Map<String, Object> queryEnterpriseInfRankingByIndId(Long industryAll,Long companies_id);
}
